package Traductor;

import AnalizadorLexico.AnalizadorLexico.Token;

public class ManejadorErrores {
	
	public void tokenNoEsperado(Token t){
		abortar("ERROR Fila: " + t.fila + ", Columna: " + t.columna + " Token no esperado: " + (t.lex!=null ? t.lex : t.cat) + ".");
	}
	
	private void abortar(String msj){
		System.out.println(msj);
		System.exit(1);
	}

	public void errorOperadorUnario(Token t) {
		System.out.println("ERROR Fila: " + t.fila + ", Columna: " + t.columna + ": Tipo incompatible.");
	}

	public void noExisteId(Token t) {
		System.out.println("ERROR Fila: " + t.fila + ", Columna: " + t.columna +": Identificador no declarado. " +  t.lex);
	}

	public void errorOperadorBinario(Token t) {
		System.out.println("ERROR Fila: " + t.fila + ", Columna: " + t.columna + ": Tipos incompatibles.");		
	}

	public void idDuplicado(Token t) {
		System.out.println("ERROR Fila: " + t.fila + ", Columna: " + t.columna +": Identificador duplicado. " +  t.lex);
	}
	
	public void idDuplicado(int i) {
		System.out.println("ERROR Fila: " + i + ": Identificador duplicado. ");
	}
}
